package coneccion;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

import javax.naming.NamingException;

import mapeo.CandidatosMapper;

import objetos.Candidato;

import utils.Constantes;
import utils.UtilidadesConexion;

public class CandidatosConsultas {
	
	public CandidatosConsultas() {
		super();
	}

	/**
	 * Realiza una consulta a la base de datos, filtrando por apellido, legajo tipo y numero de documento del candidato. Ademas permite limitar el numero de resultados, primerResultado admite valores desde 0 a n-1.
	 * @param candidato
	 * @param primerResultado
	 * @param cantidadResultados
	 * @return
	 */
	public List<Candidato> getCandidatosList(Candidato candidato, Integer primerResultado, Integer cantidadResultados){
		
		List<Candidato> resultList = null;
		Connection con = null;
		Statement stmt = null;
		ResultSet rs = null;
		StringBuilder query = new StringBuilder("");
		
		try {
			//creo la coneccion y la sentencia
			con = UtilidadesConexion.getConnectionFromTomcatPool();
			con.setAutoCommit(true);
			stmt = con.createStatement();
			
			//creo la consulta
			query.append("SELECT DISTINCT e.candidatos_id as candidatos_id, ")
				.append("e.candidatos_nombres as candidatos_nombres, ")
				.append("e.candidatos_apellidos as candidatos_apellidos, ")
				.append("e.candidatos_foto_candidato as candidatos_foto_candidato, ")
				.append("td.tipos_documentos_id as tipos_documentos_id, ")
				.append("td.tipos_documentos_nombre as tipos_documentos_nombre, ")
				.append("td.tipos_documentos_nombre_completo as tipos_documentos_nombre_completo, ")
				.append("e.candidatos_numero_documento as candidatos_numero_documento, ")
				.append("e.candidatos_partido_politico as candidatos_partido_politico, ")
				.append("e.candidatos_foto_partido_politico as candidatos_foto_partido_politico, ")
				.append("e.candidatos_votos as candidatos_votos ");
			
			query.append("FROM candidatos e, tipos_documentos td ");
			query.append("WHERE  e.candidatos_tipo_documento=td.tipos_documentos_id ");
			
			if(candidato != null){
				
				if(candidato.getApellidos() != null && candidato.getApellidos().length()>0){
					query.append("AND e.candidatos_apellidos LIKE '" + candidato.getApellidos() + "%' ");
					
				}
				if(candidato.getFotoCandidato() != null && candidato.getFotoCandidato().length()>0){
					query.append("AND e.candidatos_partido_politico LIKE '" + candidato.getPartidoPolitico() + "%' ");
				}
				if(candidato.getDocumentoIdentidad() != null ){
					if(candidato.getDocumentoIdentidad().getId() != null && candidato.getDocumentoIdentidad().getId().intValue()>0){
						query.append("AND e.candidatos_tipo_documento=" + candidato.getDocumentoIdentidad().getId() + " ");
					}					
				}
				
				if(candidato.getNumeroDocumento() != null && candidato.getNumeroDocumento().length()>0){
					query.append("AND e.candidatos_numero_documento='" + candidato.getNumeroDocumento() + "' ");
				}
			}
			
			query.append("ORDER BY e.candidatos_apellidos ASC, e.candidatos_partido_politico ASC, e.candidatos_tipo_documento ASC, e.candidatos_numero_documento ASC ");
			
			if(primerResultado != null && cantidadResultados!=null){
				if(primerResultado.intValue()==0 && cantidadResultados.intValue()>0){
					query.append("LIMIT ").append(cantidadResultados).append(" ");
				}else if(primerResultado.intValue()>0 && cantidadResultados.intValue()>0){
					query.append("LIMIT ").append(primerResultado).append(", ").append(cantidadResultados).append(" ");
				}
			}
			
			
			
			//ejecuto la consulta y guardo el resultado en el resultset
			rs = stmt.executeQuery(query.toString());
			
			CandidatosMapper candidatosMapper = new CandidatosMapper();
			resultList = candidatosMapper.parseListaCandidato(rs);
			
		} catch (NamingException e) {
			e.printStackTrace();
			resultList = new ArrayList<Candidato>();
		} catch (SQLException e) {
			e.printStackTrace();
			resultList = new ArrayList<Candidato>();
		} catch (Exception e) {
			e.printStackTrace();
			resultList = new ArrayList<Candidato>();
		} finally {
			if (rs != null) {
			      try { 
			    	  rs.close(); 
			      } catch (SQLException e) {
			    	  
			      }
			      rs = null;
		    }
		    if (stmt != null) {
		      try { 
		    	  	stmt.close();
		    	  } catch (SQLException e) {
		    		  
		    	  }
		      stmt = null;
		    }
			if(con!=null){
				try {
					con.close();
				} catch (SQLException e) {
					
				}
				con = null;
			}
		}
		
		return resultList;
		
	}
	
	
public Integer getCantidadCandidatos(Candidato candidato){
		
		Integer result = Integer.valueOf(0); 
		Connection con = null;
		Statement stmt = null;
		ResultSet rs = null;
		StringBuilder query = new StringBuilder("");		
		
		try {
			//creo la coneccion y la sentencia
			con = UtilidadesConexion.getConnectionFromTomcatPool();
			con.setAutoCommit(true);
			stmt = con.createStatement();
			
			//creo la consulta
			query.append("SELECT DISTINCT count(*) as cantidad ");
			
			query.append("FROM candidatos e, tipos_documentos td ");
			query.append("WHERE  e.candidatos_tipo_documento=td.tipos_documentos_id ");
			
			if(candidato != null){
				
				if(candidato.getApellidos() != null && candidato.getApellidos().length()>0){
					query.append("AND e.candidatos_apellidos LIKE '" + candidato.getApellidos() + "%' ");
					
				}
				if(candidato.getFotoCandidato() != null && candidato.getFotoCandidato().length()>0){
					query.append("AND e.candidatos_partido_politico LIKE '" + candidato.getPartidoPolitico() + "%' ");
				}
				if(candidato.getDocumentoIdentidad() != null ){
					if(candidato.getDocumentoIdentidad().getId() != null && candidato.getDocumentoIdentidad().getId().intValue()>0){
						query.append("AND e.candidatos_tipo_documento=" + candidato.getDocumentoIdentidad().getId() + " ");
					}					
				}
				
				if(candidato.getNumeroDocumento() != null && candidato.getNumeroDocumento().length()>0){
					query.append("AND e.candidatos_numero_documento='" + candidato.getNumeroDocumento() + "' ");
				}
			}
			
			//ejecuto la consulta y guardo el resultado en el resultset
			rs = stmt.executeQuery(query.toString());
			if(rs.next()){
				result = rs.getInt("cantidad") ;
			}
		} catch (NamingException e) {
			e.printStackTrace();
			result = Integer.valueOf(0); 
		} catch (SQLException e) {
			e.printStackTrace();
			result = Integer.valueOf(0);
		} catch (Exception e) {
			e.printStackTrace();
			result = Integer.valueOf(0);
		} finally {
			if (rs != null) {
			      try { 
			    	  rs.close(); 
			      } catch (SQLException e) {
			    	  
			      }
			      rs = null;
		    }
		    if (stmt != null) {
		      try { 
		    	  	stmt.close();
		    	  } catch (SQLException e) {
		    		  
		    	  }
		      stmt = null;
		    }
			if(con!=null){
				try {
					con.close();
				} catch (SQLException e) {
					
				}
				con = null;
			}
		}
		
		return result;
		
	}


	public Candidato getCandidato(Candidato candidatoBusqueda){
		Candidato result = null;
		Connection con = null;
		Statement stmt = null;
		ResultSet rs = null;
		StringBuilder query = new StringBuilder("");
		
		try {
			//creo la coneccion y la sentencia
			con = UtilidadesConexion.getConnectionFromTomcatPool();
			con.setAutoCommit(true);
			stmt = con.createStatement();
			
			//creo la consulta
			query.append("SELECT DISTINCT e.candidatos_id as candidatos_id, ")
			.append("e.candidatos_nombres as candidatos_nombres, ")
			.append("e.candidatos_apellidos as candidatos_apellidos, ")
			.append("e.candidatos_foto_candidato as candidatos_foto_candidato, ")
			.append("td.tipos_documentos_id as tipos_documentos_id, ")
			.append("td.tipos_documentos_nombre as tipos_documentos_nombre, ")
			.append("td.tipos_documentos_nombre_completo as tipos_documentos_nombre_completo, ")
			.append("e.candidatos_numero_documento as candidatos_numero_documento, ")
			.append("e.candidatos_partido_politico as candidatos_partido_politico, ")
			.append("e.candidatos_foto_partido_politico as candidatos_foto_partido_politico, ")
			.append("e.candidatos_votos as candidatos_votos ");
		
		query.append("FROM candidatos e, tipos_documentos td ");
		query.append("WHERE  e.candidatos_tipo_documento=td.tipos_documentos_id ");
		
		if(candidatoBusqueda != null){
			
			if(candidatoBusqueda.getId() != null && candidatoBusqueda.getId().intValue()>0){
				query.append("AND e.candidatos_id=" + candidatoBusqueda.getId() + " ");
				
			}
			
			if(candidatoBusqueda.getApellidos() != null && candidatoBusqueda.getApellidos().length()>0){
				query.append("AND e.candidatos_apellidos LIKE '" + candidatoBusqueda.getApellidos() + "%' ");
				
			}
			if(candidatoBusqueda.getFotoCandidato() != null && candidatoBusqueda.getFotoCandidato().length()>0){
				query.append("AND e.candidatos_partido_politico LIKE '" + candidatoBusqueda.getPartidoPolitico() + "%' ");
			}
			if(candidatoBusqueda.getDocumentoIdentidad() != null ){
				if(candidatoBusqueda.getDocumentoIdentidad().getId() != null && candidatoBusqueda.getDocumentoIdentidad().getId().intValue()>0){
					query.append("AND e.candidatos_tipo_documento=" + candidatoBusqueda.getDocumentoIdentidad().getId() + " ");
				}					
			}
			
			if(candidatoBusqueda.getNumeroDocumento() != null && candidatoBusqueda.getNumeroDocumento().length()>0){
				query.append("AND e.candidatos_numero_documento='" + candidatoBusqueda.getNumeroDocumento() + "' ");
			}
		}
			
			//ejecuto la consulta y guardo el resultado en el resultset
			rs = stmt.executeQuery(query.toString());
			
			CandidatosMapper candidatosMapper = new CandidatosMapper();
			result = candidatosMapper.parseCandidato(rs);
			
		} catch (NamingException e) {
			e.printStackTrace();
			result = new Candidato();
		} catch (SQLException e) {
			e.printStackTrace();
			result = new Candidato();
		} catch (Exception e) {
			e.printStackTrace();
			result = new Candidato();
		} finally {
			if (rs != null) {
			      try { 
			    	  rs.close(); 
			      } catch (SQLException e) {
			    	  
			      }
			      rs = null;
		    }
		    if (stmt != null) {
		      try { 
		    	  	stmt.close();
		    	  } catch (SQLException e) {
		    		  
		    	  }
		      stmt = null;
		    }
			if(con!=null){
				try {
					con.close();
				} catch (SQLException e) {
					
				}
				con = null;
			}
		}
		
		return result;
	}
	
public List<Candidato> getCandidatosParaVotacion(){
		
		List<Candidato> resultList = null;
		Connection con = null;
		Statement stmt = null;
		ResultSet rs = null;
		StringBuilder query = new StringBuilder("");
		
		try {
			//creo la coneccion y la sentencia
			con = UtilidadesConexion.getConnectionFromTomcatPool();
			con.setAutoCommit(true);
			stmt = con.createStatement();
			
			//creo la consulta
			query.append("SELECT DISTINCT e.candidatos_id as candidatos_id, ")
				.append("e.candidatos_nombres as candidatos_nombres, ")
				.append("e.candidatos_apellidos as candidatos_apellidos, ")
				.append("e.candidatos_foto_candidato as candidatos_foto_candidato, ")
				.append("td.tipos_documentos_id as tipos_documentos_id, ")
				.append("td.tipos_documentos_nombre as tipos_documentos_nombre, ")
				.append("td.tipos_documentos_nombre_completo as tipos_documentos_nombre_completo, ")
				.append("e.candidatos_numero_documento as candidatos_numero_documento, ")
				.append("e.candidatos_partido_politico as candidatos_partido_politico, ")
				.append("e.candidatos_foto_partido_politico as candidatos_foto_partido_politico, ")
				.append("e.candidatos_votos as candidatos_votos ");
			
			query.append("FROM candidatos e, tipos_documentos td ");
			query.append("WHERE  e.candidatos_tipo_documento=td.tipos_documentos_id ");
			query.append("AND e.candidatos_id!=1 ");
			
			query.append("ORDER BY e.candidatos_apellidos ASC, e.candidatos_nombres ASC, e.candidatos_partido_politico ASC, e.candidatos_tipo_documento ASC, e.candidatos_numero_documento ASC ");
			
			//ejecuto la consulta y guardo el resultado en el resultset
			rs = stmt.executeQuery(query.toString());
			
			CandidatosMapper candidatosMapper = new CandidatosMapper();
			resultList = candidatosMapper.parseListaCandidato(rs);
			
		} catch (NamingException e) {
			e.printStackTrace();
			resultList = new ArrayList<Candidato>();
		} catch (SQLException e) {
			e.printStackTrace();
			resultList = new ArrayList<Candidato>();
		} catch (Exception e) {
			e.printStackTrace();
			resultList = new ArrayList<Candidato>();
		} finally {
			if (rs != null) {
			      try { 
			    	  rs.close(); 
			      } catch (SQLException e) {
			    	  
			      }
			      rs = null;
		    }
		    if (stmt != null) {
		      try { 
		    	  	stmt.close();
		    	  } catch (SQLException e) {
		    		  
		    	  }
		      stmt = null;
		    }
			if(con!=null){
				try {
					con.close();
				} catch (SQLException e) {
					
				}
				con = null;
			}
		}
		
		return resultList;
		
	}
	
public List<Candidato> getCandidatosParaConteoVotos(){
	
	List<Candidato> resultList = null;
	Connection con = null;
	Statement stmt = null;
	ResultSet rs = null;
	StringBuilder query = new StringBuilder("");
	
	try {
		//creo la coneccion y la sentencia
		con = UtilidadesConexion.getConnectionFromTomcatPool();
		con.setAutoCommit(true);
		stmt = con.createStatement();
		
		//creo la consulta
		query.append("SELECT DISTINCT e.candidatos_id as candidatos_id, ")
			.append("e.candidatos_nombres as candidatos_nombres, ")
			.append("e.candidatos_apellidos as candidatos_apellidos, ")
			.append("e.candidatos_foto_candidato as candidatos_foto_candidato, ")
			.append("td.tipos_documentos_id as tipos_documentos_id, ")
			.append("td.tipos_documentos_nombre as tipos_documentos_nombre, ")
			.append("td.tipos_documentos_nombre_completo as tipos_documentos_nombre_completo, ")
			.append("e.candidatos_numero_documento as candidatos_numero_documento, ")
			.append("e.candidatos_partido_politico as candidatos_partido_politico, ")
			.append("e.candidatos_foto_partido_politico as candidatos_foto_partido_politico, ")
			.append("e.candidatos_votos as candidatos_votos ");
		
		query.append("FROM candidatos e, tipos_documentos td ");
		query.append("WHERE  e.candidatos_tipo_documento=td.tipos_documentos_id ");
		
		
		query.append("ORDER BY e.candidatos_votos DESC, e.candidatos_apellidos ASC, e.candidatos_nombres ASC, e.candidatos_partido_politico ASC, e.candidatos_tipo_documento ASC, e.candidatos_numero_documento ASC ");
		
		//ejecuto la consulta y guardo el resultado en el resultset
		rs = stmt.executeQuery(query.toString());
		
		CandidatosMapper candidatosMapper = new CandidatosMapper();
		resultList = candidatosMapper.parseListaCandidato(rs);
		
	} catch (NamingException e) {
		e.printStackTrace();
		resultList = new ArrayList<Candidato>();
	} catch (SQLException e) {
		e.printStackTrace();
		resultList = new ArrayList<Candidato>();
	} catch (Exception e) {
		e.printStackTrace();
		resultList = new ArrayList<Candidato>();
	} finally {
		if (rs != null) {
		      try { 
		    	  rs.close(); 
		      } catch (SQLException e) {
		    	  
		      }
		      rs = null;
	    }
	    if (stmt != null) {
	      try { 
	    	  	stmt.close();
	    	  } catch (SQLException e) {
	    		  
	    	  }
	      stmt = null;
	    }
		if(con!=null){
			try {
				con.close();
			} catch (SQLException e) {
				
			}
			con = null;
		}
	}
	
	return resultList;
	
}
	
	public Boolean agregarCandidato(Candidato candidato){
		Boolean result = Boolean.FALSE;
		
		Connection con = null;
		Statement stmt = null;
		ResultSet rs = null;
		StringBuilder query = new StringBuilder("");
		PropiedadesSistemaConsultas propiedadesSistemaConsultas = new PropiedadesSistemaConsultas();
		String estadoVotacion = propiedadesSistemaConsultas.getEstadoVotacion();
		if(Constantes.ESTADO_VOTACION_PREPARACION.equals(estadoVotacion)){
			try {
				//creo la coneccion y la sentencia
				con = UtilidadesConexion.getConnectionFromTomcatPool();
				con.setAutoCommit(true);
				stmt = con.createStatement();
				
				query.append("INSERT INTO candidatos ( candidatos_nombres, candidatos_apellidos, ")
					.append("candidatos_tipo_documento, candidatos_numero_documento, ")
					.append("candidatos_partido_politico, candidatos_votos, ")
					.append("candidatos_foto_candidato, candidatos_foto_partido_politico");
				query.append(" ) ");
				query.append("VALUES ( ")
					.append("'").append(candidato.getNombres()).append("', ")
					.append("'").append(candidato.getApellidos()).append("', ")
					.append(candidato.getDocumentoIdentidad().getId().toString()).append(", ")
					.append("'").append(candidato.getNumeroDocumento()).append("', ")
					.append("'").append(candidato.getPartidoPolitico()).append("', ")
					.append("0").append(", ")
					.append("'").append(candidato.getFotoCandidato()!=null?candidato.getFotoCandidato():"").append("', ")
					.append("'").append(candidato.getFotoPartidoPolitico()!=null?candidato.getFotoPartidoPolitico():"").append("' ")
					.append(" )");
				
				//ejecuto el update
				stmt.executeUpdate(query.toString(), Statement.RETURN_GENERATED_KEYS);
				rs = stmt.getGeneratedKeys();
				
				if(rs!=null && rs.next()){
					candidato.setId(rs.getInt(1));
				}
				
				result = Boolean.TRUE;
				
			} catch (NamingException e) {
				e.printStackTrace();
				result = Boolean.FALSE;
			} catch (SQLException e) {
				e.printStackTrace();
				result = Boolean.FALSE;
			} catch(Exception e) {
				e.printStackTrace();
				result = Boolean.FALSE;
			}finally {
				
			    if (stmt != null) {
			      try { 
			    	  	stmt.close();
			    	  } catch (SQLException e) {
			    		  
			    	  }
			      stmt = null;
			    }
				if(con!=null){
					try {
						con.close();
					} catch (SQLException e) {
						
					}
					con = null;
				}
			}
		}
		
		return result;
	}
	
	public Boolean actualizarCandidato(Candidato candidato){
		Boolean result = Boolean.FALSE;
		
		Connection con = null;
		Statement stmt = null;
		StringBuilder query = new StringBuilder("");
		//el candidato voto en blanco no se puede modificar
		if( candidato!=null && candidato.getId()!=null && candidato.getId().intValue()!=1){
			try {
				//creo la coneccion y la sentencia
				con = UtilidadesConexion.getConnectionFromTomcatPool();
				con.setAutoCommit(true);
				stmt = con.createStatement();
				
				query.append("UPDATE candidatos ")
					.append("SET candidatos_nombres='").append(candidato.getNombres()).append("', ")
					.append("candidatos_apellidos='").append(candidato.getApellidos()).append("', ")
					.append("candidatos_partido_politico='").append(candidato.getPartidoPolitico()!=null?candidato.getPartidoPolitico():"").append("', ")
					.append("candidatos_tipo_documento=").append(candidato.getDocumentoIdentidad().getId().toString()).append(", ")
					.append("candidatos_numero_documento='").append(candidato.getNumeroDocumento()).append("', ")
					.append("candidatos_foto_candidato='").append(candidato.getFotoCandidato()!=null?candidato.getFotoCandidato():"").append("', ")
					.append("candidatos_foto_partido_politico='").append(candidato.getFotoPartidoPolitico()!=null?candidato.getFotoPartidoPolitico():"").append("' ");
				query.append("WHERE candidatos_id=").append(candidato.getId().toString());
				//ejecuto el update
				stmt.executeUpdate(query.toString());
				
				result = Boolean.TRUE;
				
			} catch (NamingException e) {
				e.printStackTrace();
				result = Boolean.FALSE;
			} catch (SQLException e) {
				e.printStackTrace();
				result = Boolean.FALSE;
			} catch(Exception e) {
				e.printStackTrace();
				result = Boolean.FALSE;
			}finally {
				
			    if (stmt != null) {
			      try { 
			    	  	stmt.close();
			    	  } catch (SQLException e) {
			    		  
			    	  }
			      stmt = null;
			    }
				if(con!=null){
					try {
						con.close();
					} catch (SQLException e) {
						
					}
					con = null;
				}
			}
		}
		return result;
	}
	
	public Boolean eliminarCandidato(Candidato candidato){
		Boolean result = Boolean.FALSE;
		
		Connection con = null;
		Statement stmt = null;
		StringBuilder query = new StringBuilder("");
		PropiedadesSistemaConsultas propiedadesSistemaConsultas = new PropiedadesSistemaConsultas();
		String estadoVotacion = propiedadesSistemaConsultas.getEstadoVotacion();
		//El candidato "voto en blanco" no se puede borrar
		if(Constantes.ESTADO_VOTACION_PREPARACION.equals(estadoVotacion) && candidato!=null && candidato.getId()!=null && candidato.getId().intValue()!=1){
			try {
				//creo la coneccion y la sentencia
				con = UtilidadesConexion.getConnectionFromTomcatPool();
				con.setAutoCommit(true);
				stmt = con.createStatement();
				
				query.append("DELETE FROM candidatos ");
				query.append("WHERE candidatos_id=").append(candidato.getId().toString());
				//ejecuto el update
				stmt.executeUpdate(query.toString());
				
				result = Boolean.TRUE;
				
			} catch (NamingException e) {
				e.printStackTrace();
				result = Boolean.FALSE;
			} catch (SQLException e) {
				e.printStackTrace();
				result = Boolean.FALSE;
			} catch(Exception e) {
				e.printStackTrace();
				result = Boolean.FALSE;
			}finally {
				
			    if (stmt != null) {
			      try { 
			    	  	stmt.close();
			    	  } catch (SQLException e) {
			    		  
			    	  }
			      stmt = null;
			    }
				if(con!=null){
					try {
						con.close();
					} catch (SQLException e) {
						
					}
					con = null;
				}
			}
		}
		return result;
	}
	
	public Boolean actualizarImagenesCandidato(Candidato candidato){
		Boolean result = Boolean.FALSE;
		
		Connection con = null;
		Statement stmt = null;
		StringBuilder query = new StringBuilder("");
		//el candidato voto en blanco no se puede modificar
		if( candidato!=null && candidato.getId()!=null && candidato.getId().intValue()!=1){
			try {
				//creo la coneccion y la sentencia
				con = UtilidadesConexion.getConnectionFromTomcatPool();
				con.setAutoCommit(true);
				stmt = con.createStatement();
				
				query.append("UPDATE candidatos ")
					.append("SET candidatos_foto_candidato='").append(candidato.getFotoCandidato()!=null?candidato.getFotoCandidato():"").append("', ")
					.append("candidatos_foto_partido_politico='").append(candidato.getFotoPartidoPolitico()!=null?candidato.getFotoPartidoPolitico():"").append("' ");
				query.append("WHERE candidatos_id=").append(candidato.getId().toString());
				//ejecuto el update
				stmt.executeUpdate(query.toString());
				
				result = Boolean.TRUE;
				
			} catch (NamingException e) {
				e.printStackTrace();
				result = Boolean.FALSE;
			} catch (SQLException e) {
				e.printStackTrace();
				result = Boolean.FALSE;
			} catch(Exception e) {
				e.printStackTrace();
				result = Boolean.FALSE;
			}finally {
				
			    if (stmt != null) {
			      try { 
			    	  	stmt.close();
			    	  } catch (SQLException e) {
			    		  
			    	  }
			      stmt = null;
			    }
				if(con!=null){
					try {
						con.close();
					} catch (SQLException e) {
						
					}
					con = null;
				}
			}
		}
		return result;
	}
}
